MATLAB学习笔记(一)数组的创建、索引及运算

您所在的位置:网站首页 matlab 矩阵操作 MATLAB学习笔记(一)数组的创建、索引及运算

MATLAB学习笔记(一)数组的创建、索引及运算

2024-01-12 02:37| 来源: 网络整理| 查看: 265

MATLAB学习笔记(一)基本运算与矩阵输入 1 创建数组

一维数组称为向量,二维数组称为矩阵 可以使用中括号“[ ]”,直接输入数值来创建数组,也可以通过MATLAB内置函数来创建特殊数组

1.1 直接创建

元素间使用空格或者英文逗号间隔,使用英文分号执行换行操作

>>A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 1.2 内置函数创建特殊数组 zeros(m,n) ----创建m×n阶全零矩阵ones(m,n) ----创建m×n阶全幺阵rand(m,n) ----生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 m×n 矩阵randi(imax,n) ----生成一个元素在区间 [1,imax] 的均匀离散分布的伪随机整数的 n×n 矩阵magic(n) ----生成n×n阶魔方矩阵diag(A) ----返回一个列向量,其元素为由矩阵A的对角线元素diag(V) ----V是一个向量(行向量、列向量结果相同),返回一个对角矩阵,其对角元素为向量V的元素

zeros(m,n) ----创建m×n阶全零矩阵

>> zeros(2,3) ans = 0 0 0 0 0 0

ones(m,n) ----创建m×n阶全幺阵

>> ones(2,3) ans = 1 1 1 1 1 1

rand(m,n) ----生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 m×n 矩阵

>> rand(2,3) ans = 0.7655 0.1869 0.4456 0.7952 0.4898 0.6463

randi(imax,n) ----生成一个元素在区间 [1,imax] 的均匀离散分布的伪随机整数的 n×n 矩阵

>> randi(5,3) ans = 3 2 5 1 5 2 1 2 5

magic(n) ----生成n×n阶魔方矩阵

>> A=magic(3) A = 8 1 6 3 5 7 4 9 2

diag(A) ----返回一个列向量,其元素为由矩阵A的对角线元素

>> diag(A) ans = 8 5 2

diag(V) ----V是一个向量(行向量、列向量结果相同),返回一个对角矩阵,其对角元素为向量V的元素

>> A=[1 2 3]; >> diag(A) ans = 1 0 0 0 2 0 0 0 3 >> diag(A') ans = 1 0 0 0 2 0 0 0 3 2 数组索引(Index)

数组中的每个元素都有两个属性: 1)元素的值 2)元素在数组中的位置

注意:MATLAB数组索引从1开始!而不是0!!

以三阶魔方矩阵 A=[8 1 6;3 5 7;4 9 2] 为例

A(id) ----按列索引数组第id个元素A(m,n) ----返回数组A第m行第n列对应的元素A([l m n]) ----返回一个行向量,元素为数组A第l、m、n个元素A(l m; p q) ----返回一个2×2阶矩阵,其元素第一行为数组A第l、m个元素,第二行为数组A第p、q个元素A(m, : ) ----返回一个行向量,其元素为数组A第m行元素A(:, n) ----返回一个列向量,其元素为数组A第n列元素A([m n], p) ----返回数组A第m行、第n列与第p行相交的元素

A(id) ----按列索引数组第id个元素

>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> A(6) ans = 9

A(m,n) ----返回数组A第m行第n列对应的元素

>> A(2,3) ans = 7

A([l m n]) ----返回一个行向量,元素为数组A第l、m、n个元素

>> A([1,3,5]) ans = 8 4 5

A(l m; p q) ----返回一个2×2阶矩阵,其元素第一行为数组A第l、m个元素,第二行为数组A第p、q个元素

>> A([1 3;1 3]) ans = 8 4 8 4

A([m,n], [p,q]) ----返回一个2×2阶矩阵,其元素为数组A第m行、第n行与第p列、第q列相交的元素,即[m,n]代表行(row),[p,q]代表列(col)

>> A([1 3],[1 3]) ans = 8 6 4 2

A(m,:) ----返回一个行向量,其元素为数组A第m行元素

>> A(2,:) ans = 3 5 7

A(:, n) ----返回一个列向量,其元素为数组A第n列元素

>> A(:,2) ans = 1 5 9

A([m n], p) ---- 返回数组A第m行、第n列与第p行相交的元素

>> A([1 3], 2) ans = 1 9 3 数组运算 3.1 等差数组

A(l: m: n) ----生成一个等差数组,首项=l,等差=m(默认为1),尾项=n

>> A=[1:9] A = 1 2 3 4 5 6 7 8 9 >> B=[1:2:9] B = 1 3 5 7 9 >> C=[1:2:5; 2:4] C = 1 3 5 2 3 4 3.2 数组串联(合并)

C=[A B] ,C=[A; B] ----将维度一致的两个数组合并为一个数组

>> A=[1 2; 3 4] A = 1 2 3 4 >> B=[5 6; 7 8] B = 5 6 7 8 >> C=[A B] C = 1 2 5 6 3 4 7 8 >> C=[A;B] C = 1 2 3 4 5 6 7 8 3.3 删除元素(删除某一行、某一列)

A(m)=[ ] ----删除数组A第m个元素,并返回一个行向量

>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> A(3)=[] A = 8 3 1 5 9 6 7 2

A(m, :)=[ ] ----返回删除数组A第m行后缩短的数组(列操作同理)

>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> A(2,:)=[] A = 8 1 6 4 9 2 3.4 数组操作 数组操作符:+ - * / ^ . '

1. 数组A与标量a

A+a, A-a ----数组A的每个元素加 a、减 aA*a ----数组A每个元素乘 aA.*a ----数组A每个元素乘 aA/a ----数组A每个元素除以 aA./a ----数组A每个元素除以 aA^a ----a个数组A相乘A.^a ----数组A的每个元素进行a次方 >> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> a=2; >> A+a ans = 10 3 8 5 7 9 6 11 4 >> A-a ans = 6 -1 4 1 3 5 2 7 0 >> A*a ans = 16 2 12 6 10 14 8 18 4 >> A.*a ans = 16 2 12 6 10 14 8 18 4 >> A/a ans = 4.0000 0.5000 3.0000 1.5000 2.5000 3.5000 2.0000 4.5000 1.0000 >> A./a ans = 4.0000 0.5000 3.0000 1.5000 2.5000 3.5000 2.0000 4.5000 1.0000 >> A^a ans = 91 67 67 67 91 67 67 67 91 >> A.^a ans = 64 1 36 9 25 49 16 81 4

2. 数组与数组

A+B, A-B ----数组A、B对应元素向加减A*B ----数组A左乘数组BA.*B ----数组A与数组B对应元素相乘A/B ----A/B≈Ainv(B),其中Ainv(B)中的B必须为方阵A./B ----数组A除以数组B的对应元素 >> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> B=randi(5,3) B = 1 4 1 3 5 5 5 4 5 >> A+B ans = 9 5 7 6 10 12 9 13 7 >> A-B ans = 7 -3 5 0 0 2 -1 5 -3 >> A*B ans = 41 61 43 53 65 63 41 69 59 >> A.*B ans = 8 4 6 9 25 35 20 36 10 >> A/B ans = -0.8750 -1.0000 2.3750 -0.8125 2.0000 -0.4375 2.6250 -1.0000 0.8750 >> A./B ans = 8.0000 0.2500 6.0000 1.0000 1.0000 1.4000 0.8000 2.2500 0.4000

3.矩阵运算

B’ ----矩阵B转置 rank(B) ----矩阵B的秩inv(A) ----方阵A求逆det() ----方阵A的行列式size(A) ---- 返回一个行向量,其元素是 A 的相应维度的长度,即A的大小length(A) ----返回A中最大维度的长度。对于向量,长度仅仅是元素数量。对于具有更多维度的数据,长度为 max(size(X))。空数组的长度为零。D=eig(A) ----返回方阵A的特征值D[V D]=eig(A) ----返回方阵A的特征值D和特征向量V A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> A' ans = 8 3 4 1 5 9 6 7 2 >> rank(A) ans = 3 >> inv(A) ans = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 >> det(A) ans = -360 >> size(A) ans = 3 3 >> length(A) ans = 3 >> D=eig(A) D = 15.0000 4.8990 -4.8990 >> [V D]=eig(A) V = -0.5774 -0.8131 -0.3416 -0.5774 0.4714 -0.4714 -0.5774 0.3416 0.8131 D = 15.0000 0 0 0 4.8990 0 0 0 -4.8990


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3